package madixin.t543;

class Solution {
    private int max = 0;

    public int diameterOfBinaryTree(TreeNode root) {
        if (root == null) {
            return 0;
        }
        getDepth(root);

        return max;
    }

    private int getDepth(TreeNode node) {
        if (node == null) {
            return 0;
        }
        int l = getDepth(node.left);
        int r = getDepth(node.right);


        max = Math.max(l + r, max);//每个节点都需要记录最大长度，因为不一定会经过root节点的长度是最大值

        return Math.max(l, r) + 1;
    }

}